﻿const webpack = require('webpack')
const path = require("path")

const CompressionPlugin = require('compression-webpack-plugin')

module.exports = {
	lintOnSave: false,
	devServer: {
		port: 8088,
		host: '0.0.0.0',
		open: true,
		proxy: {
			[process.env.VUE_APP_BASE_API]: {
				target: `http://192.168.1.66:8080`,
				changeOrigin: true,
				pathRewrite: {
					['^' + process.env.VUE_APP_BASE_API]: ''
				}
			},
		},
		historyApiFallback: true, // 设置了当服务端收到 404 请求时，将会返回 index.html 文件
	},
	configureWebpack: {
		resolve: {
			alias: {
				'@': path.resolve(__dirname, 'src'),
				'assets': '@/assets'
			}
		},
		plugins: [
			// http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件
			new CompressionPlugin({
				cache: false,                   // 不启用文件缓存
				test: /\.(js|css|html)?$/i,     // 压缩文件格式
				filename: '[path].gz[query]',   // 压缩后的文件名
				algorithm: 'gzip',              // 使用gzip压缩
				minRatio: 0.8                   // 压缩率小于1才会压缩
			}),
			// maxChunks：使用大于或等于 1 的值，来限制 chunk 的最大数量。使用 1 防止添加任何其他额外的 chunk，这是因为 entry/main chunk 也会包含在计数之中。
			//minChunkSize: 设置 chunk 的最小大小。
			// 限制打包的个数(减少打包生成的js文件和css文件)
			new webpack.optimize.LimitChunkCountPlugin({
				maxChunks: 10,
				minChunkSize: 100
			})
		],
	},
	// 同一端口部署两个项目时,例如/user和/app时打开,在.env.production修改
	// publicPath: process.env.VUE_APP_BASE_PATH + "/", 
	publicPath: "/",
	assetsDir: './',
	assetsDir: 'static', // 整合css和js到这里
	outputDir: 'app', // 打包名称
}
